package com.aust.annotation;

/**
 * 注解是用来给程序中的类、方法、字段等加“标记”，让编译器、框架或其他程序在“编译期”或“运行时”根据这些标记来“决定怎么处理这些元素”。
 * <p>
 * “注解不动手，框架动手”。
 * 注解只是一个“信号”，真正做事的是框架或工具。
 * <p>
 * “注解不动手，框架动手”。
 * 注解只是一个“信号”，真正做事的是框架或工具。
 */

/**
 * “注解不动手，框架动手”。
 * 注解只是一个“信号”，真正做事的是框架或工具。
 */

/**
 * 注解只是单纯的一个标记，重要的是这个标记背后的实现赋予给注解的意义。
 * ① 注解本身 只是一个“标记”
 * 注解写在类、方法、字段、参数上；
 * 本身 不会改变程序运行逻辑，也不参与执行；
 * 就像给代码贴了一张“便利贴”或者“标签”一样。
 * ② 真正起作用的，是解释这个标记的程序或框架
 * 比如：Spring 框架、JUnit 测试框架、编译器、注解处理器（APT）等；
 * 它们读取注解，并根据约定的逻辑去做事情。
 * 注解 = 标签
 * 意义 = 框架/程序如何解释这个标签
 */
public @interface Annotation2 {
    String value();

    /**
     * @interface 用来定义注解；
     * 方法名就是属性名；
     * 可以定义默认值：int count() default 1;
     * @return
     */
    int count() default 1;
}
